#pragma once
#ifndef __G_DELEGATE_H__
#define __G_DELEGATE_H__

namespace GUtil
{
	// Delegate Type
	enum GDelegateType
	{
		G_DT_UNBOUND		= 0,
		G_DT_FUNCTION		= 1,
		G_DT_METHOD			= 2,
		G_DT_METHOD_CONST	= 3,
	};

	// Base class
	template <typename T>
	class GDelegate
	{

	};

	// Base class
	template <typename T>
	class GMultiDelegate
	{

	};

}; // namespace GUtil

#define G_PP_INCLUDE_COUNT 10
#define G_PP_INCLUDE_HEADER	"GDelegateImp.h"
#include "GPreProcessorIncluder.h"
#undef G_PP_INCLUDE_HEADER
#undef G_PP_INCLUDE_COUNT

#endif